package com.skivingcloud.develop.service;

import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.skivingcloud.common.utils.PageParameter;
import com.skivingcloud.develop.entity.SysFormDesigner;

import java.util.List;

/**
 * 表单设计表 服务层。
 *
 * @author skivingcloud
 * @since 2024-01-18
 */
public interface SysFormDesignerService extends IService<SysFormDesigner> {
    /**
     * 分页查询表单设计表
     *
     * @param parameter 查询参数
     * @return 分页查询结果
     */
    Page<SysFormDesigner> queryByPage(PageParameter<SysFormDesigner> parameter);
    
    /**
     * 根据名称查询表单
     * @param formName 名称
     * @return 结果
     */
    List<SysFormDesigner> getFormDesignerByNameLike(String formName);
    
    /**
     * 若源记录已发布则生成新记录，否则直接更改源记录
     * @param sysFormDesigner 组件信息
     * @return 是否成功
     */
    Boolean updateVersion(SysFormDesigner sysFormDesigner);

    /**
     *  发布组件
     * @param sysFormDesigner 组件信息
     * @return 是否成果
     */
    Boolean release(SysFormDesigner sysFormDesigner);

    /**
     * 根据编码获取最新版本已发布的组件信息
     * @param code 组件设计编码
     * @return 组件设计详情
     */
    SysFormDesigner getLatestInfoByCode(String code);
}
